//package com.wj.blog.config;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
//import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
//import org.springframework.security.config.annotation.web.builders.WebSecurity;
//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
//import org.springframework.security.core.userdetails.UserDetailsService;
//import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
//
///**
// * <pre>鉴权框架配置</pre>
// *
// * @ClassName SecurityConfig
// * @Auther: wangjin
// * @Date: 2021/12/11/16:15
// * @Description: TODO
// * @Version 1.0
// */
//
//@Configuration
//@EnableGlobalMethodSecurity()
//public class SecurityConfig extends WebSecurityConfigurerAdapter {
//
//    @Bean
//    public UserDetailsService userDetailsService() {
//        //这里是查询用户信息，并校验用户信息的地方
//        return null;
//    }
//
//    /**
//     * 密码编码器
//     *
//     * @return
//     */
//    @Bean
//    public BCryptPasswordEncoder bCryptPasswordEncoder() {
//        return new BCryptPasswordEncoder();
//    }
//
//    /**
//     * 登录认证及资源访问权限的控制
//     * 登录认证逻辑-登录URL、如何接收登录参数、登陆成功后逻辑(静态)
//     * 资源访问控制规则-决定什么用户、什么角色可以访问什么资源(动态-数据库)
//     * 用户具有角色权限-配置某个用户拥有什么角色、拥有什么权限(动态-数据库)
//     *
//     * @param http
//     * @throws Exception
//     */
//    @Override
//    protected void configure(HttpSecurity http) throws Exception {
//        http.csrf().disable()
//                .authorizeRequests()
//                .antMatchers("/user/login").permitAll()
//                .anyRequest().authenticated()
//                .and()
//                .formLogin()
//                .loginPage("/login")
//                .successForwardUrl("/login")
//                .failureForwardUrl("/login_fail")
//                .permitAll()
//                .and()
//                .logout();
//    }
//
//    /**
//     * 静态资源的控制
//     *
//     * @param web
//     * @throws Exception
//     */
//    @Override
//    public void configure(WebSecurity web) throws Exception {
//        //将项目中静态资源路径开放出来
//        web.ignoring().antMatchers("/css/**", "/fonts/**", "/img/**", "/js/**");
//    }
//
//    /**
//     * 用户及角色信息配置
//     *
//     * @param auth
//     * @throws Exception
//     */
//    @Override
//    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//        auth.userDetailsService(userDetailsService()).passwordEncoder(bCryptPasswordEncoder());
//    }
//}
